package com.fxd.serviceorder.config;

import feign.Logger;
import feign.Retryer;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

import java.util.concurrent.TimeUnit;

/**
 * @author xudongfu
 * @date 2025/06/08
 */
@Configuration
public class OrderConfig {

    /**
     * 注解式负载均衡
     */
    @LoadBalanced
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

    @Bean
    public Logger.Level feignLoggerLevel() {
        return Logger.Level.FULL;
    }

    @Bean
    Retryer retryer() {
        // 第一次 100毫秒之后重试，第二次 100*1.5 ，每次在前面的基础上面*1.5
        // 最大1000毫秒，最多重试2次
        return new Retryer.Default(100L, TimeUnit.SECONDS.toMillis(1L), 2);
    }
}
